function mobile_init ( alg_param )
    % 3400 - 3499
    global scene_size;   
    global radio_range;  
    global nodes_count;
    global S_Map;

    % inicjalizacja polega na przyporzadkowaniu kazdego czujnika do numeru na
    % krzywej hilberta. Stopien krzywej ustalany jest na podstawie zasiegu
    % czujnikow i rozmiarze obszaru wg wzoru:
    %   
    %  m = log2(sqrt(5)*scene_size*radio_range)
    %

    global mobile_m;        % stopień krzywej Hilberta
    global mobile_s;        % rozmiar kratownicy
    global mobile_sdata;    % specyficzne dane każdego z czujników
                            % [:,1] - położenie czujnika x na kratownicy
                            % [:,2] - położenie czujnika y na kratownicy
                            % [:,3] - położenie czujnika h na krzywej
                            % Hilberta
    global mobile_bsdata;   % specyficzne dane stacji bazowej
                            % [1] - położenie stacji bazowej x na kratownicy
                            % [2] - położenie stacji bazowej y na kratownicy
                            % [3] - położenie stacji bazowej h na krzywej
                            % Hilberta
    global mobile_scale;    % skala = scene_size/mobile_size
    global mobile_AN_Map;   % mapa aktywnych czujnikow w kazdym obszarze
    global mobile_speed;    % prędkość stacji bazowej w jednostkach/hop
    global mobile_Hilbert_s;% stan początkowy krzywej Hilberta
    
    mobile_speed = 0.5;
    
    mobile_m = ceil(log2(sqrt(5/2)*scene_size/radio_range));
    mobile_s = pow2(mobile_m);
    mobile_bsdata(3) = -mobile_speed;
    mobile_Hilbert_s = 0;
    
    mobile_AN_Map= zeros(mobile_s,mobile_s,7);

    mobile_scale = scene_size / mobile_s;
    
    for i=1:nodes_count;
        nx = floor( (S_Map(i,1)-1) / mobile_scale);
        ny = floor( (S_Map(i,2)-1) / mobile_scale);
        mobile_sdata(i,1) = nx;
        mobile_sdata(i,2) = ny;
        mobile_sdata(i,3) = mobile_euklides2hilbert(nx,ny,mobile_m,mobile_Hilbert_s);
        for j=1:floor(rand(1,1)*3+4); % kazdy czujnik odbiera ok. 4-7 pakietow
            recv_data(i);
        end
        emit_data(i,false); % każdy czujnik wysyla dokładnie jeden pakiet do stacji bazowej
        
        % umieszczenie czujnikow na liscie dla kazdego sektora
        mobile_AN_Map(nx+1, ny+1, 1) = mobile_AN_Map(nx+1,ny+1,1) + 1;
        mobile_AN_Map(nx+1, ny+1, mobile_AN_Map(nx+1,ny+1,1)+1) = i;
        
        % sortowanie tablicy sąsiadów ze względu na odległość od węzła
        % neighbours(:) = N_Map(i,:,1);
    end
    
    
end
